(ns testproj.core)

;; 类型定义 deftype
;; Clas Hello带一个参数name的构造函数
(deftype Hello [name])

;;get Hello的name属性
(.name (->Hello "Tom"))

;; 底层是一个map 
(defrecord Persion [name])

;; 使用map获取
(.name (->Persion "Lily"))

;; 构建map，再通过map获取
(:name (map->Persion {:name "susam"}))


;; 通过deftype 定义一个runnable类型
(deftype t2 [name]
  Runnable
  (run [this] (println (.name this))))

(.run (t2. "tom cat"))


